Skip to main content

quick sort

· One min read

from random import randint
# import inspect

def quick_sort(arr):
# this_function_name = inspect.currentframe().f_code.co_name
# print('quick_sort', arr)

if len(arr) <= 1:
return arr
small, equal, large = [], [], []
# 可指定或隨機挑選 pivot
pivot = arr[randint(0, len(arr)-1)]
for x in arr:
if x < pivot:
small.append(x)
elif x == pivot:
equal.append(x)
else:
large.append(x)
# print(' '*len(this_function_name), small, equal, large)
return quick_sort(small) + equal + quick_sort(large)

t = quick_sort([2, 5, 45, 5163, 123, 8947, 546, 315, 645])
print(t)